home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 1998 November / IRIX 6.5.2 Base Documentation November 1998.img / usr / share / catman / p_man / cat3 / complib / clatrd.z / clatrd
Text File  |  1998-10-30  |  7KB  |  199 lines

  1.  
  2.  
  3.  
  4. CCCCLLLLAAAATTTTRRRRDDDD((((3333FFFF))))                                                          CCCCLLLLAAAATTTTRRRRDDDD((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      CLATRD - reduce NB rows and columns of a complex Hermitian matrix A to
  10.      Hermitian tridiagonal form by a unitary similarity transformation Q' * A
  11.      * Q, and returns the matrices V and W which are needed to apply the
  12.      transformation to the unreduced part of A
  13.  
  14. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  15.      SUBROUTINE CLATRD( UPLO, N, NB, A, LDA, E, TAU, W, LDW )
  16.  
  17.          CHARACTER      UPLO
  18.  
  19.          INTEGER        LDA, LDW, N, NB
  20.  
  21.          REAL           E( * )
  22.  
  23.          COMPLEX        A( LDA, * ), TAU( * ), W( LDW, * )
  24.  
  25. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  26.      CLATRD reduces NB rows and columns of a complex Hermitian matrix A to
  27.      Hermitian tridiagonal form by a unitary similarity transformation Q' * A
  28.      * Q, and returns the matrices V and W which are needed to apply the
  29.      transformation to the unreduced part of A.
  30.  
  31.      If UPLO = 'U', CLATRD reduces the last NB rows and columns of a matrix,
  32.      of which the upper triangle is supplied;
  33.      if UPLO = 'L', CLATRD reduces the first NB rows and columns of a matrix,
  34.      of which the lower triangle is supplied.
  35.  
  36.      This is an auxiliary routine called by CHETRD.
  37.  
  38.  
  39. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  40.      UPLO    (input) CHARACTER
  41.              Specifies whether the upper or lower triangular part of the
  42.              Hermitian matrix A is stored:
  43.              = 'U': Upper triangular
  44.              = 'L': Lower triangular
  45.  
  46.      N       (input) INTEGER
  47.              The order of the matrix A.
  48.  
  49.      NB      (input) INTEGER
  50.              The number of rows and columns to be reduced.
  51.  
  52.      A       (input/output) COMPLEX array, dimension (LDA,N)
  53.              On entry, the Hermitian matrix A.  If UPLO = 'U', the leading n-
  54.              by-n upper triangular part of A contains the upper triangular
  55.              part of the matrix A, and the strictly lower triangular part of A
  56.              is not referenced.  If UPLO = 'L', the leading n-by-n lower
  57.              triangular part of A contains the lower triangular part of the
  58.              matrix A, and the strictly upper triangular part of A is not
  59.              referenced.  On exit:  if UPLO = 'U', the last NB columns have
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. CCCCLLLLAAAATTTTRRRRDDDD((((3333FFFF))))                                                          CCCCLLLLAAAATTTTRRRRDDDD((((3333FFFF))))
  71.  
  72.  
  73.  
  74.              been reduced to tridiagonal form, with the diagonal elements
  75.              overwriting the diagonal elements of A; the elements above the
  76.              diagonal with the array TAU, represent the unitary matrix Q as a
  77.              product of elementary reflectors; if UPLO = 'L', the first NB
  78.              columns have been reduced to tridiagonal form, with the diagonal
  79.              elements overwriting the diagonal elements of A; the elements
  80.              below the diagonal with the array TAU, represent the  unitary
  81.              matrix Q as a product of elementary reflectors.  See Further
  82.              Details.  LDA     (input) INTEGER The leading dimension of the
  83.              array A.  LDA >= max(1,N).
  84.  
  85.      E       (output) REAL array, dimension (N-1)
  86.              If UPLO = 'U', E(n-nb:n-1) contains the superdiagonal elements of
  87.              the last NB columns of the reduced matrix; if UPLO = 'L', E(1:nb)
  88.              contains the subdiagonal elements of the first NB columns of the
  89.              reduced matrix.
  90.  
  91.      TAU     (output) COMPLEX array, dimension (N-1)
  92.              The scalar factors of the elementary reflectors, stored in
  93.              TAU(n-nb:n-1) if UPLO = 'U', and in TAU(1:nb) if UPLO = 'L'.  See
  94.              Further Details.  W       (output) COMPLEX array, dimension
  95.              (LDW,NB) The n-by-nb matrix W required to update the unreduced
  96.              part of A.
  97.  
  98.      LDW     (input) INTEGER
  99.              The leading dimension of the array W. LDW >= max(1,N).
  100.  
  101. FFFFUUUURRRRTTTTHHHHEEEERRRR DDDDEEEETTTTAAAAIIIILLLLSSSS
  102.      If UPLO = 'U', the matrix Q is represented as a product of elementary
  103.      reflectors
  104.  
  105.         Q = H(n) H(n-1) . . . H(n-nb+1).
  106.  
  107.      Each H(i) has the form
  108.  
  109.         H(i) = I - tau * v * v'
  110.  
  111.      where tau is a complex scalar, and v is a complex vector with v(i:n) = 0
  112.      and v(i-1) = 1; v(1:i-1) is stored on exit in A(1:i-1,i), and tau in
  113.      TAU(i-1).
  114.  
  115.      If UPLO = 'L', the matrix Q is represented as a product of elementary
  116.      reflectors
  117.  
  118.         Q = H(1) H(2) . . . H(nb).
  119.  
  120.      Each H(i) has the form
  121.  
  122.         H(i) = I - tau * v * v'
  123.  
  124.      where tau is a complex scalar, and v is a complex vector with v(1:i) = 0
  125.      and v(i+1) = 1; v(i+1:n) is stored on exit in A(i+1:n,i), and tau in
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. CCCCLLLLAAAATTTTRRRRDDDD((((3333FFFF))))                                                          CCCCLLLLAAAATTTTRRRRDDDD((((3333FFFF))))
  137.  
  138.  
  139.  
  140.      TAU(i).
  141.  
  142.      The elements of the vectors v together form the n-by-nb matrix V which is
  143.      needed, with W, to apply the transformation to the unreduced part of the
  144.      matrix, using a Hermitian rank-2k update of the form:  A := A - V*W' -
  145.      W*V'.
  146.  
  147.      The contents of A on exit are illustrated by the following examples with
  148.      n = 5 and nb = 2:
  149.  
  150.      if UPLO = 'U':                       if UPLO = 'L':
  151.  
  152.        (  a   a   a   v4  v5 )              (  d                  )
  153.        (      a   a   v4  v5 )              (  1   d              )
  154.        (          a   1   v5 )              (  v1  1   a          )
  155.        (              d   1  )              (  v1  v2  a   a      )
  156.        (                  d  )              (  v1  v2  a   a   a  )
  157.  
  158.      where d denotes a diagonal element of the reduced matrix, a denotes an
  159.      element of the original matrix that is unchanged, and vi denotes an
  160.      element of the vector defining H(i).
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.